package com.hrcx.mystery.utils.quartz.cron;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <h1>cron表达体</h1>
 *
 * @author LinXiPeng
 * @className CronScheduleModel
 * @date 2021/12/15 14:53
 * Version 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "cron表达体", description = "cron表达式生成对象")
public class CronScheduleModel implements Serializable {

    public CronScheduleModel(Integer jobType) {
        this.jobType = jobType;
    }

    private static final long serialVersionUID = -396504870803151639L;

    /**
     * 所选作业类型:
     * 0  -> 每秒
     * 1  -> 每天
     * 2  -> 每周
     * 3  -> 每月
     * 4  -> 每分
     */
    @NotNull(message = "作业类型不能为空")
    @ApiModelProperty("所选作业类型: 0 -> 每秒 1 -> 每天 2 -> 每周 3 -> 每月 4 -> 每分")
    Integer jobType;

    /**
     * 一周的哪几天
     */
    @ApiModelProperty("一周的哪几天")
    Integer[] dayOfWeeks;

    /**
     * 一个月的哪几天
     */
    @ApiModelProperty("一个月的哪几天")
    Integer[] dayOfMonths;

    /**
     * 秒
     */
    @ApiModelProperty("秒")
    Integer second;

    /**
     * 分
     */
    @ApiModelProperty("分")
    Integer minute;

    /**
     * 时
     */
    @ApiModelProperty("时")
    Integer hour;
}